Response Caching এবং Distributed Caching

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) ASP.Net Core Performance Optimization |
229
229

Response Caching এবং Distributed Caching হলো ওয়েব অ্যাপ্লিকেশন পারফরম্যান্স অপটিমাইজ করার জন্য ব্যবহৃত দুটি গুরুত্বপূর্ণ কৌশল। এগুলি ডেটার পুনরায় রেন্ডারিং বা পুনরুদ্ধারের সময়কে কমিয়ে অ্যাপ্লিকেশনের গতিবিধি উন্নত করে।

Response Caching

Response Caching হল একটি কৌশল যেখানে সার্ভার একবার একটি রেসপন্স প্রক্রিয়া করার পর, সেই রেসপন্সটি কিছু সময়ের জন্য কনজিউমারদের কাছে কন্ট্রোল করা হয়, যাতে পরবর্তী একই রিকোয়েস্টের জন্য নতুন করে সার্ভারকে কাজ না করতে হয়। এতে সার্ভারের ওপর চাপ কমে এবং ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্স বাড়ে।

Response Caching এর সুবিধা

  1. পারফরম্যান্স বাড়ায়: একবার ক্যালকুলেটেড রেসপন্স পুনরায় ব্যবহার করা যায়, যার ফলে পরবর্তী রিকোয়েস্টের জন্য ডেটা প্রক্রিয়া করার দরকার পড়ে না।
  2. সার্ভার লোড কমায়: একই রিকোয়েস্ট বারবার আসলে, রেসপন্স কaching এর মাধ্যমে সার্ভারের উপর লোড কমানো সম্ভব।
  3. অ্যাপ্লিকেশন স্লো হওয়ার ঝুঁকি কমায়: বিশেষ করে ডায়নামিক কন্টেন্টের ক্ষেত্রে, যেখানে ডেটা প্রতি রিকোয়েস্টে পরিবর্তিত হয়, সেখানে ক্যাশিং তা দ্রুত প্রক্রিয়া করতে সাহায্য করে।

Response Caching কনফিগারেশন

ASP.NET Core এ Response Caching চালু করতে নিচের কোডটি ব্যবহার করা যায়।

public void ConfigureServices(IServiceCollection services)
{
    services.AddResponseCaching();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseResponseCaching();
}

এছাড়া, কন্ট্রোলার বা অ্যাকশন মেথডে [ResponseCache] অ্যাট্রিবিউট ব্যবহার করা যায়। যেমন:

[ResponseCache(Duration = 60, Location = ResponseCacheLocation.Client, NoStore = false)]
public IActionResult Get()
{
    return View();
}

এখানে Duration হল ক্যাশিংয়ের সময়কাল (সেকেন্ডে), এবং Location হল ক্যাশিংটি কোথায় হবে (Client বা Server)।


Distributed Caching

Distributed Caching হল একটি ক্যাশিং মেকানিজম যা একাধিক সার্ভারে ডেটা শেয়ার করতে সাহায্য করে। অর্থাৎ, একটি নির্দিষ্ট সার্ভারের ক্যাশে থাকা ডেটা অন্য সার্ভারও ব্যবহার করতে পারে। এটি মূলত বড় আকারের ওয়েব অ্যাপ্লিকেশনে ব্যবহৃত হয় যেখানে একাধিক সার্ভার বা সার্ভিস একসাথে কাজ করে এবং ক্যাশ ডেটা একটি একক সার্ভারে সীমাবদ্ধ না থেকে পুরো ক্লাস্টারে বিতরণ করা হয়।

Distributed Caching এর সুবিধা

  1. স্কেলেবিলিটি: যখন অ্যাপ্লিকেশন বড় হয়ে যায় এবং একাধিক সার্ভারে ডেটা ব্যবস্থাপনা করতে হয়, তখন ডিস্ট্রিবিউটেড ক্যাশ অ্যাপ্লিকেশনকে আরও স্কেলেবল বানায়।
  2. ডেটার সেন্ট্রালাইজেশন: সমস্ত সার্ভার বা অ্যাপ্লিকেশন এক জায়গা থেকে ক্যাশ ডেটা অ্যাক্সেস করতে পারে, যা সেন্ট্রালাইজড ক্যাশিং সলিউশন সরবরাহ করে।
  3. রেডান্ড্যান্সি: ক্যাশ ডেটা একাধিক সার্ভারে থাকায় এটি সার্ভারের লোডের উপর নির্ভরশীল নয়, ফলে সিস্টেমের হাই অ্যাভেইলেবিলিটি এবং রিলায়েবিলিটি নিশ্চিত হয়।

Distributed Caching কনফিগারেশন

ASP.NET Core এ ডিস্ট্রিবিউটেড ক্যাশ ব্যবহার করতে, প্রথমে সঠিক ক্যাশিং সিস্টেম কনফিগার করতে হয়, যেমন Redis বা SQL Server। এখানে একটি উদাহরণ দেওয়া হলো Redis ব্যবহার করে।

public void ConfigureServices(IServiceCollection services)
{
    services.AddStackExchangeRedisCache(options =>
    {
        options.Configuration = "localhost:6379"; // Redis server configuration
        options.InstanceName = "SampleApp_";
    });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapGet("/cache", async context =>
        {
            var cache = context.RequestServices.GetRequiredService<IDistributedCache>();
            var value = await cache.GetStringAsync("cachedData");
            if (value == null)
            {
                value = "Hello, World!";
                await cache.SetStringAsync("cachedData", value);
            }
            await context.Response.WriteAsync(value);
        });
    });
}

এখানে Redis ব্যবহার করা হয়েছে, তবে আপনি অন্য ডিস্ট্রিবিউটেড ক্যাশ সিস্টেম যেমন Memcached বা NCacheও ব্যবহার করতে পারেন।


পার্থক্য Response Caching এবং Distributed Caching

বৈশিষ্ট্যResponse CachingDistributed Caching
ক্যাশ স্টোরেজক্লায়েন্ট অথবা সার্ভারে ক্যাশ করা হয়একাধিক সার্ভারে ক্যাশ করা হয়
স্কেলেবিলিটিসীমিত (একটি সার্ভারে ক্যাশ করা হয়)উচ্চ (একাধিক সার্ভারে ক্যাশ করা হয়)
ব্যবহারকম ট্রাফিক ওয়েবসাইট, সার্ভার লোড কমানোর জন্যবড় আকারের অ্যাপ্লিকেশন, একাধিক সার্ভার ব্যবহারের ক্ষেত্রে
ক্যাশিং ডেটাওয়েব পেজের রেসপন্স ডেটা ক্যাশ করা হয়সেন্ট্রালাইজড ক্যাশে ডেটা শেয়ার করা হয়
পারফরম্যান্সদ্রুত, তবে সার্ভারের উপর নির্ভরশীলস্কেলেবল, দ্রুত এবং ডেটা শেয়ার করা যায়

সারাংশ

Response Caching এবং Distributed Caching দুটোই অ্যাপ্লিকেশন পারফরম্যান্স বাড়ানোর জন্য গুরুত্বপূর্ণ কৌশল। Response Caching সাধারণত ছোট, স্থির অ্যাপ্লিকেশন এবং সার্ভারের লোড কমানোর জন্য ব্যবহৃত হয়, যেখানে Distributed Caching বড়, স্কেলেবল অ্যাপ্লিকেশন এবং একাধিক সার্ভারে ডেটা শেয়ার করার জন্য বেশি উপযুক্ত। যথাযথ ক্যাশিং স্ট্রাটেজি নির্বাচন করলে, ওয়েব অ্যাপ্লিকেশনকে আরও দ্রুত এবং স্কেলেবল করা সম্ভব।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion